<?php
class Common_Model_Selst extends Apm_Model_Base
{

	/**
	* 駅名一覧データ取得（ヴァルAPI使用）
	*
	* @access	public
	* @param	array
	* @return	void
	*/
	public function getEkiList($params)
	{
		$data = array();
		$strSrc = "";
		
		$TgtStNm = $params['TgtStNm'];
		
		$encode = mb_detect_encoding($TgtStNm);
		
		if ($encode != "SJIS")
		{
			$TgtStNm = mb_convert_encoding($TgtStNm, "SJIS", $encode);
		}

		// ekiworld.netは、sjisでキーワードを渡さないと動作しない
// 		$url = "http://apaman.ekiworld.net/exp.cgi?val_htmb=ams_range&val_from=" . $params['TgtStNm'] . "&val_type=" . $params['SelStKbn'];
		$url = "http://apaman.ekiworld.net/exp.cgi?val_htmb=ams_range&val_from=" . $TgtStNm . "&val_type=" . $params['SelStKbn'];
		
		$fp  = fopen($url, "r");
		try
		{
			// 文字列取得
			while($buf = fgets($fp)) $strSrc .= $buf;
			// 配列に格納
			$data = explode(',', $strSrc);
		}
		catch (exception $e)
		{
			$data = array();
            __log_debug(__FILE__, __LINE__, __METHOD__, $e->getMessage());
		}
		fclose($fp);

		return $data;
	}

	/**
	* 駅名一覧データを表示用に変換
	*
	* @access	public
	* @param	array ※参照渡し
	* @return	void
	*/
	public function convertEkiList(&$data)
	{
		$data['TgtStList'] = array();

		// arrSrc(0)の値　1:該当駅が複数または無し、2:該当駅1件
		// arrSrc(1)の値　arrSrc(0)の値が1の場合に駅数が返る
		// arrSrc(2)以降　駅名or駅コード

		$type = (!empty($data['arrSrc'][0])) ? intval($data['arrSrc'][0]) : 0;
		$cnt  = (!empty($data['arrSrc'][1])) ? intval($data['arrSrc'][1]) : 0;

		// 該当駅複数あり
		if ($type == 1 && $cnt > 0)
		{
			// 駅一覧取得
			for ($i=0; $i<$cnt; $i++)
			{
				// SJISで駅名が返されるため、文字コードを変更する必要あり
				$TgtStNm = $data['arrSrc'][$i+2];
		
				$encode = mb_detect_encoding($TgtStNm);
				
				if ($encode != Apm_Config_Common::PHP_CHAR_SET)
				{
					$TgtStNm = mb_convert_encoding($TgtStNm, Apm_Config_Common::PHP_CHAR_SET, "SJIS");
				}
				
				$data['TgtStList'][$i] = $TgtStNm;
			}
		}
		// 該当駅１件の場合
		else if ($type == 2 && $data['arrSrc'][2] != "0")
		{
			// 駅コード取得
			$data['tgtEkiCd'] = substr($data['arrSrc'][2], 0, 5);
		}
		// 該当駅なし
		else
		{
			$type = 0;
		}

		$data['intRailRuteError'] = $type;
	}

	// リダイレクト用URL生成
	public function getUrl($params, $data)
	{
		$ekiFrom = (!empty($params['eki_from'])) ? $params['eki_from'] : $data['tgtEkiCd'];
		$ekiTo   = (!empty($params['eki_to']))   ? $params['eki_to']   : $data['tgtEkiCd'];

		// URL生成
		return "http://apaman.ekiworld.net/exp.cgi?val_htmb=ams_search&val_from=" . $ekiFrom . "&val_to=" . $ekiTo;
	}

}
?>